
// function brother(str1, str2) {
//     let arr1 = str1.split('')
//     let arr2 = str2.split('')
//     arr1.sort()
//     arr2.sort()
//     if (str1 === str2) {
//         return false
//     }
//     if (arr1.length !== arr2.length) {
//         return false
//     }
//     for (let i = 0; i < arr1.length; i++) {
//         if (arr1[i] !== arr2[i]) {
//             return false
//         }
//     }
//     return true
// }

// let line = '3 abc bca cab abc 1'
// let arr = line.split(' ')
// let num = parseInt(arr[0])
// let newArr = arr.slice(1, num + 1)
// let str = arr[num + 1]
// let num2 = parseInt(arr[num + 2])
// let resultArr = newArr.filter(item => brother(item, str))
// resultArr.sort()
// console.log(resultArr.length)
// console.log(resultArr[num2])





// function encrypt(str) {
//     let arr = str.split('')
//     return arr.map(item => {
//         if (/[0-9]/.test(item)) {
//             if (item == 9) {
//                 return 0
//             } else {
//                 return parseInt(item) + 1
//             }
//         } else {
//             if (item.charCodeAt() >= 97 && item.charCodeAt() <= 122) { // 小写
//                 if (item === 'z') {
//                     return 'A'
//                 }
//                 return String.fromCharCode((item.toUpperCase().charCodeAt() + 1))
//             } else {
//                 if (item === 'Z') {
//                     return 'a'
//                 }
//                 return String.fromCharCode((item.toLowerCase().charCodeAt() + 1))
//             }
//         }
//     })
// }

// function decode(str) {
//     let arr = str.split('')
//     return arr.map(item => {
//         if (/[0-9]/.test(item)) {
//             if (item == 0) {
//                 return 9
//             } else {
//                 return parseInt(item) - 1
//             }
//         } else {
//             if (item.charCodeAt() >= 97 && item.charCodeAt() <= 122) { // 小写
//                 if (item === 'a') {
//                     return 'Z'
//                 }
//                 return String.fromCharCode((item.toUpperCase().charCodeAt() - 1))
//             } else {
//                 if (item === 'A') {
//                     return 'z'
//                 }
//                 return String.fromCharCode((item.toLowerCase().charCodeAt() - 1))
//             }
//         }
//     })
// }

// let line = "abcdefg"
// let line2 = "BCDEFGH"
// console.log(encrypt(line))
// console.log(decode(line2))




function solution(str) {
    let arr = str.split(' ').join('').split('')
    let odds = []
    let evens = []
    for (let i = 0; i < arr.length; i++) {
        if (i % 2 == 0) {
            odds.push(arr[i])
        } else {
            evens.push(arr[i])
        }
    }
    odds.sort()
    evens.sort()

    let j = 0
    let k = 0
    for (let i = 0; i < arr.length; i++) {
        if (i % 2 == 0) {
            arr[i] = odds[j++]
        } else {
            arr[i] = evens[k++]
        }
    }
    return arr.map(item => {
        if (/[0-9a-fA-F]/.test(item)) {
            let a = parseInt(item, 16).toString(2)
            let temp = a.split('').reverse().join('')
            return parseInt(temp, 2).toString(16)
        }
    }).join('')
}


console.log(solution('dec fab'))

